<?
function TraceOut($target,$title,$text){
    if ($target=='title'){
        return $title;
    }
    if ($target=='content'){
        return $text;
    }
}
function sklonenie ($int, $expressions, $withnumber = FALSE)
{
   IF (count ($expressions) < 3)
   {$expressions[2] = $expressions[1];};

   settype ($int, 'integer');

   if ($withnumber == TRUE)
   {$result = $int .' ';}
   else
   {$result = '';};

   $count = $int % 100;

   if ($count >= 5 && $count <= 20)
   {$result .= $expressions[2];}
   else
   {
      $count = $count % 10;

      if ($count == 1)
      {$result .= $expressions[0];}
      elseif ($count >= 2 && $count <= 4)
      {$result .= $expressions[1];}
      else
      {$result .= $expressions[2];};
   };
   return $result;
};

//отправка сообщения на мыло
function SendMailF ($from, $to, $subj, $what){
$subj = "=?utf-8?B?" . base64_encode($subj) . "?=";

    $what='
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru" >
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     </head>
     <body>
     '.$what.'
     </body>
     </html>
     ';
   return mail($to, $subj, $what,
"Content-type: text/html; charset=\"utf-8\"
From: $from
Reply-To: $from
Content-Transfer-Encoding: 8bit
Content-type: text/html; charset=\"utf-8\"
");

}
function login_phpbb(){
 //- авторизируемся на форуме
  //-- создаем переменные для форума
  define('IN_PHPBB', true);
  global $db;
  global $user;
  global $auth;
  global $cache;
  global $config;
  global $phpEx, $SID, $_SID, $_EXTRA_URL, $db, $config, $phpbb_root_path, $template;

  // Set phpBB root folder properly. Change in according to the actual board folder
  //-- где расположен скрипт форума физически
  define('PHPBB_ROOT_PATH', '/home/u15405/ng86.ru/www/forum/');
  $phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';

  $phpEx = substr(strrchr(__FILE__, '.'), 1);
  //--подключаем библиотеки

  include($phpbb_root_path . 'common.' . $phpEx);
  require($phpbb_root_path . 'includes/functions_user.' . $phpEx);
  require($phpbb_root_path . 'includes/functions_module.' . $phpEx);
  //include($phpbb_root_path . 'includes/functions_display.' . $phpEx);


  $user->session_begin();
  $auth->acl($user->data);
  $user->setup('ucp');
  // Initialize login result array
  global $login;
  $login = array();

  // Check if user has submitted login and password and try to log in
  if ($_POST['logout'] == 'out'){
     logout_phpbb();
  }
  if(isset($_POST['login']) && $user->data['user_id'] == ANONYMOUS)
  {
    $username = request_var('login', '', true);
    $password = request_var('pass', '', true);

    $autologin = (!empty($_POST['autologin'])) ? true : false;
    //-- $login будет содержать параметры пользователя если они ненужны то просто $auth->login($username, $password, $autologin);
    $login = $auth->login($username, $password, $autologin);
    $_SESSION['user_data']=$login;
  }
  if ($user->data['user_id'] != 1){ 
			$_SESSION['user_id'] = $user->data['user_id'];
			// Имя
			$_SESSION['name'] = $user->data['username'];
			
			$_SESSION['status'] = $user->data['user_type'];
			$_SESSION['level'] = $user->data['user_permissions'];
                        if ($_SESSION['user_id']!=2)
                          $_SESSION['level']=0;
                        else
                          $_SESSION['level']=10; 
			$_SESSION['ip'] = $user->data['user_ip'];
  }else{
     unset($_SESSION);
  }
}
function logout_phpbb(){
  global $db;
  global $user;
  global $auth;
  global $cache;
  global $config;
  global $phpEx, $SID, $_SID, $_EXTRA_URL, $db, $config, $phpbb_root_path, $template;
		if ($user->data['user_id'] != ANONYMOUS )
		{
			/*$_GET['sid'] = $user->session_id;*/
			$user->session_kill();
			$user->session_begin();
			unset($_SESSION);
		}
		else
		{
			$message = ($user->data['user_id'] == ANONYMOUS) ? $user->lang['LOGOUT_REDIRECT'] : $user->lang['LOGOUT_FAILED'];
		}
}
// Функция проверки логина
function login(){
	// проверку запускаем, только если есть что-то в посте логин или есть сессия
	
	/* ФИга себе регистрашка
        if (isset($_GET['reg'])){

		$name=mysql_real_escape_string('name');
		$pass=md5(mysql_real_escape_string('пароль'));
		$query = "insert into users (login, pass) ('$name','$pass')";
                $f=mysql_query($query) or die (mysql_error());

                exit();

        }
    */    
	if (isset($_POST['login'])) {
		$name=mysql_real_escape_string($_POST['login']);
		$pass=md5(mysql_real_escape_string($_POST['pass']));
		
		
		$query = "SELECT * FROM users WHERE login='$name' AND pass='$pass'";
		$res = mysql_query($query) or trigger_error(mysql_error().$query);
		
		
		if ($row = mysql_fetch_assoc($res)) {
			session_start();
			$_SESSION['user_id'] = $row['id'];
			// Имя
			$_SESSION['name'] = $row['login'];
			
			$_SESSION['status'] = $row['status'];
			
			$_SESSION['level'] = $row['level'];
			
			

			$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
		}
		// else { define(STAT,'BAD');}
		header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
		// Запись в базу послежнего ипа и даты посещения
		$ip = $_SERVER['REMOTE_ADDR'];
		$id = $row['id'];
 		$sid = $_SESSION['SID'];
//		mysql_query("UPDATE users SET last_ip = '$ip', last_visit = NOW(), sid ='$sid' WHERE id ='$id'");
		exit;
	}
	if (isset($_POST['logout']) AND $_POST['logout'] == 'out') {
		session_start();
		session_destroy();
                if (strpos($_SERVER['REQUEST_URI'], 'ADM')>0)
                    header("Location: http://".$_SERVER['HTTP_HOST']."/");
                else
                    header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
		exit;
	}
	if (isset($_REQUEST[session_name()])) session_start();
	//

	if (isset($_SESSION['user_id']) AND $_SESSION['ip'] == $_SERVER['REMOTE_ADDR']) return;
	
}

// Выведение сообщений нужных
// первая переменная - массив с куковскими значениями, вторая глобальная переменная, задается в функции testusers() - результат действий пользователя - выход или неверный пароль. Ну и регисчтрашку тоже мона.
// МОжно использовать из гета, если прописать действия там
// вывод сообщений - если есть куки с ОК в статусе, то берем имя оттуда же и печатем.
// Если нет куков - смотрим статус второй



function log_message($st){
	// Если нет пароля или был выход
	/*
	<!-- 
                                                        <tr><td>Логин</td>
                                                        <td><input type="text" style="width:100%;" name="login" /></td>
                                                        <td rowspan="2" style="width:50px;">
                                                        <input type="submit" value="ВХОД" style="border:none; background-color: #D42427; width: 50px; height: 45px; color: #FFF;"/>
                                                        </td></tr>
                                                        <tr><td>Пароль</td>
                                                        <td><input type="password" style="width:100%;" name="pass" /></td>
                                                        </tr> --> */
        global $login;
	if (empty($_SESSION['name']) || STAT == 'BAD') {
		if (STAT == 'BAD') $text .= '<b style="color: red">Неправильный логин или пароль</b>';
		
		$text .='<form method="post" action="">
		Логин: <br />
                                                       <input type="text" style="width:150px;" name="login" />
                                                        
                                               <br />
         
                                         Пароль: 
                                         <br />

                                            <input type="password" name="pass" /><br />

          <input type="submit" value="ВХОД"></form>
		';
	}

	// Если пароль правильный или в куках инфа есть
	if (!empty($_SESSION['name']) || $st == 'ОК' || $status == 'ОК' && $_POST['logout'] != 'out') $text = 'Вы зашли как <b>'.$_SESSION['name'].'</b><br /><form action="" method="POST"><input name="logout" value="out" type="hidden">
            
<input type="submit" value="Выйти" id="but"></form>
	 <a href="/ADM/?action=changepass" style="color: silver">Сменить пароль</a>
	
	
	';

	// Если плохое имя или пароль

	$st = '';
	if ($st == 'BAD') $text ='НЕПРАВИЛЬНОЕ имя или пароль';
	$text_ ='<div class="login">'.$text .'</div>';

	return $text_;
}




// Проверка на ноль спереди, если нет - добавляем
function nl($var){
	if (strlen($var) ==1) $var  = '0'.$var;
	return $var;
}


function not_found($type){
	if ($type == 'header'){
	header("HTTP/1.1 404 Not Found");
	header("Status: 404 Not Found"); 
	}
	
	
	if ($type == 'title') echo 'Ошибка 404. Страница не найдена';
	if ($type == 'content') echo '<b><font color="#ff0000">Извините, такая страница не найдена.</font></b>';
}


// приведение даты к человеческому формату, через точку
function human_date($mysql_date){
	

	$mouth = array('','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
	if (!empty($mysql_date) and ($mysql_date != '0000-00-00 00:00:00') and ($mysql_date != '0000-00-00')) {
		$date = intval(substr($mysql_date,8,2));
		$date .= ' '. $mouth[intval(substr($mysql_date,5,2))].' ';
		// Если не в этом году, то пишем
		if (date('Y') != substr($mysql_date,0,4)) $date .= substr($mysql_date,0,4);
		// Время
		$date .= " ".substr($mysql_date,11,5);
	}

	// не прерывается дата
//	$date = '<nobr>'.$date.'</nobr>';
	return $date;
}


####################### Универсальная таблица.
// три массива на входе th tds еттингс(стили и прочее)
// в сеттингс можно добавить ширину столбцов
### Параметры сеттингс
// class - стиль таблицы
// tw_1, tw_2 и так далее - номер столбца, которому присваевается ширина столбца(начиная с 1)
// tid_1, tclass_1, tclass_1 - аналогично селектор, класс, стиль


function uni_tab($th,$tds,$set){

	// Открываем табличку
	$text = '<table';
	if (isset($set['class']))	$text .= ' class="'.$set['class'].'"';
	if (isset($set['width']))	$text .= ' width="'.$set['width'].'"';
	else $text .= ' width="100%"';
	if (isset($set['cellspacing']))	$text .= ' cellspacing="'.$set['cellspacing'].'"';
	if (isset($set['cellpadding']))	$text .= ' cellpadding="'.$set['cellpadding'].'"';
	if (isset($set['border']))	$text .= ' border="'.$set['border'].'"';
	$text .= '>';

	// Строка-заголовок, если существует
	if (isset($th)){
		$text .= '<tr>';
		$i= 1; // ПОрядковый номер ячейки. Нужен для задания ширины, если есть таковая в сеттсингс
		// Если массива th нет, то продублировать всю тему на первую строку в tds
		foreach ($th AS $nutro){
			$text .='<th';
			if (isset($set['tw_'.$i])) $text .= ' width="'.$set['tw_'.$i].'"';
			$text .= '>'.$nutro.'</th>';
			$i++;
		}
		$text .= '</tr>';
	}

	// C тд похитрее. Тут многомерный массив для каждой строки разделываем ячейки отдельно




	foreach ($tds as $strnum => $strtd){
		if ($tmp) {
$id = 'gray1';
$tmp=false;
}
else {
$id = 'gray2';
$tmp = true;
}
		$text .= '
		
		
		<tr>';
		$i=1;
		foreach ($tds[$strnum] AS $nutro){
			$text .='<td id="'.$id.'"';
			if (!isset($th) && isset($set['tw_'.$i]) &&$strnum == 0) $text .= ' width="'.$set['tw_'.$i].'"';
			// если есть tid, то выставляем айди для тдшки
//			if (isset())
			
			$text .='>'.$nutro.'</td>';
			$i++;
		}
		$text .= '</tr>';
	}
	$text .= '</table>';
	return $text;
	}
	

############ Для работы с селектами
// На входе массив NAME - имя селекта имя-значение и массив, в котором ключь или значение сегодняшние, по ним выделяем сселект. В нем же можно указать дефолтный

function vertushka($name,$info,$now){
	$text = '<select name="'.$name.'">';
foreach ($info AS $k => $v ) {
if ($k == $now)$text.= '<option value="'.$k.'" selected>'.$v.'</option>';
else $text.= '<option value="'.$k.'">'.$v.'</option>';
		
	}
	$text .= '</select>';
	return $text;
	
}


// Редактирование содержимого страниц
function pages($target,$path){

	if ($target =='title') echo 'Страницы';
	if ($target =='content'){
		
		
		// Заголовок и допменю
		echo '<h3 style="margin-bottom: 0px; padding-bottom: 0px;">Страницы сайта</h3>';
	$dopmenu = array('insert_page' => 'Добавить', 'list' => 'Новости',  'list_pages' => 'Страницы')	;
		foreach ($dopmenu AS $to_path => $punkt_menu){
			echo '<a href="/pages_admin/'.$to_path.'">'.$punkt_menu.'</a> &nbsp;&nbsp; ';}	


			
// Если не выбрано допменю или выбран лист - делаем список
if (empty($path['2']) or $path[2] == 'list' || $path[2] == 'list_pages'){
	
/// ДО таблицы выполняем скрипт записи в базу, если существует пост с ключом ок_мессадж

if (isset($_POST['ok_message'])) post_base($_POST['go_from']);	
if(empty($path['2']) or $path[2] == 'list')	$zapr = mysql_query("SELECT * FROM pages WHERE type ='news'");
if($path[2] == 'list_pages')	$zapr = mysql_query("SELECT * FROM pages WHERE type ='page'");


if (mysql_num_rows($zapr) != 0) {while ($list = mysql_fetch_assoc($zapr)) {

 $tds[] = array('<a href="/pages_admin/edit_page/'.$list['id'].'">'.$list['id'].'</a>','<a href="/pages_admin/edit_page/'.$list['id'].'">'.$list['title'].'</a> <br />(<i>'.$list['name'].'</i>)',$list['notes'],$list['level'],$list['access']);
			}
$th = array('№','Название','Описание', 'Уровень','Доступ');



echo uni_tab($th,$tds,array('class'=>'filetab', 'cellpadding'=>'5', 'cellspacing'=>'0', 'tw_1'=>'1%', 'tw_4'=>'10%')); } 
// Если ничего не найдено
else echo '<br />
<br />
<strong>Ничего не найдено :(</strong><br />
<br />
';	}// заканчиваем с выводом списка		


// ДОБАВЛЕНИЕ И РЕДАКТИРОВАНИЕ страниц
if ($path[2] == 'edit_page') {
	$id = $path[3];
	$z = mysql_query("SELECT * FROM pages WHERE id = $id");
	form_page(mysql_fetch_assoc($z),'edit_page');

}
if ($path[2] == 'insert_page') {
	form_page('','insert_page');

}

	}// в конетенте

	
}



function access_list($now,$all){
	// Разбираем список
	
	$cheks = explode(',',$now);


	
	
	// Берем всех клиентов
	$z = mysql_query("SELECT id,login,name FROM users WHERE status ='client'");
	if ($all == 1) $ch_all = ' checked';
 //  Просмотри для всех в строке for_all
$text .= '<label><input type="checkbox" name="access_ALL" '.$ch_all.'><strong>ВСЕ</strong></label><br />
<i>После обозначения группы "все", выделять отдельных пользователей необязательно.</i><br />

';
 
while ($client = mysql_fetch_assoc($z)){
	$text .= '<label title="'.$client['name'].'"><input type="checkbox" name="access_#'.$client['id'].'#"';
	if (in_array('#'.$client['id'].'#',$cheks))  $text .= ' checked';
	
	 $text .= '><strong>'. $client['login'].'</strong></label><br />
';
	
}
	
 	return $text;
}


// Добавление к дате.
// Кусок с сайта http://phpclub.ru/detail/article/date_stuff
function DateAdd($interval, $number, $date) {

    $date_time_array = getdate($date);
    $month = $date_time_array['mon'];
    $day = $date_time_array['mday'];
    $year = $date_time_array['year'];
 $day+=($number*7);
       $timestamp= mktime(0,0,0,$month,$day,$year);
    return $timestamp;
}



function easyResize($img_sourse, $save_to, $quality, $width, $type=null) { 
	

   $size = GetImageSize($img_sourse);

  //  $im_in = ImageCreateFromJPEG($img_sourse);
   
   
   
   $new_height = ($width * $size[1]) / $size[0]; // Generate new height for image
   
   $conv_type='';
   if (isset($type))
	$conv_type='-format "'.$type.'"';

   $s=exec(escapeshellcmd("convert ".$conv_type." -resize ".$width."x$new_height $img_sourse $save_to"));
  // $im_out = imagecreatetruecolor($width, $new_height);
   
   //ImageCopyResampled($im_out, $im_in, 0, 0, 0, 0, $width, $new_height, $size[0], $size[1]);
   //ImageJPEG($im_out, $save_to, $quality); // Create image
   //ImageDestroy($im_in);
   //ImageDestroy($im_out);
} 
function easyResize_height($img_sourse, $save_to, $quality, $height, $type=null) {


   $size = GetImageSize($img_sourse);
  //  $im_in = ImageCreateFromJPEG($img_sourse);


   
   $new_width = ($height * $size[0]) / $size[1]; // Generate new height for image
   $conv_type='';
   if (isset($type))
	$conv_type='-format "'.$type.'"';
   exec(escapeshellcmd("convert ".$conv_type." -resize ".$new_width."x$height $img_sourse $save_to"));
  // $im_out = imagecreatetruecolor($width, $new_height);

   //ImageCopyResampled($im_out, $im_in, 0, 0, 0, 0, $width, $new_height, $size[0], $size[1]);
   //ImageJPEG($im_out, $save_to, $quality); // Create image
   //ImageDestroy($im_in);
   //ImageDestroy($im_out);
}
function _easyResize_height($img_sourse, $save_to, $quality, $height) {
   $image = new SimpleImage();
   $image->load($img_sourse);

   $image->resizeToHeight($height);
   $image->save($save_to);	
/*
   $size = GetImageSize($img_sourse);

   $im_in = ImageCreateFromJPEG($img_sourse);

   $new_width = ($height * $size[0]) / $size[1]; // Generate new height for image
   $im_out = imagecreatetruecolor($new_width, $height);

   ImageCopyResampled($im_out, $im_in, 0, 0, 0, 0, $new_width, $height, $size[0], $size[1]);
   ImageJPEG($im_out, $save_to, $quality); // Create image
   ImageDestroy($im_in);
   ImageDestroy($im_out);
*/
}

function _easyResize($img_sourse, $save_to, $quality, $width) { 
   $image = new SimpleImage();
   $image->load($img_sourse);

   $image->resizeToWidth($width);
   $image->save($save_to);	
/*
   $size = GetImageSize($img_sourse);
   $im_in = ImageCreateFromJPEG($img_sourse);
   
   $new_height = ($width * $size[1]) / $size[0]; // Generate new height for image
   $im_out = imagecreatetruecolor($width, $new_height);
   
   ImageCopyResampled($im_out, $im_in, 0, 0, 0, 0, $width, $new_height, $size[0], $size[1]);
   ImageJPEG($im_out, $save_to, $quality); // Create image
   ImageDestroy($im_in);
   ImageDestroy($im_out);
*/
} 




########## Проверка радиобаттонов и формирование списка
## @info - массив value - подпись
## @name - имя формы
## @now - выделяемый пункт
## @br - yes - список через бр-ку, пусто - список в строку, через пробел
function radio_check($info,$name,$now,$br){
	
	foreach ($info AS $v => $p){
	$text .= 	'<label><input type="radio" name="'.$name.'" value="'.$v.'"';
	if 	($now == $v) $text .= ' checked';
	$text .= ' />'.$p.'</label>';
	if ($br == 'yes') $text .= '<br />';
	}
	return $text;
}

// КОнвертирование размера файла
function byteConvert($bytes){
	if ($bytes != 0 or !empty($bytes)) {
		
	
	$convention = 1000;
	$s = array('Б','Кб','Мб','Гб','Пб','','');
	$e = floor(log($bytes,$convention));
	return round($bytes/pow($convention,$e),2).' '.$s[$e]; }
	
}


// Переход на другой сайт. СТраница - метка
// Запись в базу инфы о переходе
function metka($path){
	// print_r($path);

	$dest = eregi_replace('DOT','.',$path[2]);	// Место назначения, убираем слово DOT, используемое вместо точки
	$dest = eregi_replace('SL','/',$dest);	// Место назначения, убираем слово DOT, используемое вместо точки
	
	if ($path[2] == 'modul') $dest = $path['3'];
	
$from =	$_SERVER['HTTP_REFERER'];
$ip =	$_SERVER['REMOTE_ADDR'];
mysql_query("INSERT INTO go SET dest ='$dest', ip ='$ip', date =NOW(), ref ='$from'");
if ($dest != 'modul')	header("Location: http://".$dest."/");
if ($path[2] == 'modul')	header("Location: /modul/".$dest."/");

}

/**
 * Переделака из датапикеровского формата в исо
 *
 * @param unknown_type $data
 */
function dp_dt($data,$type){
	// перевод из датапиковского
	if ($type == 'out'){
		// 18.10.2009 - датапиковский
		// 2009-10-14 - исо
		 $d = substr($data,0,2); // день
		 $m = substr($data,3,2); // месяц
		 $y = substr($data,6,4); // год
		 
		$result = $y .'-'.$m.'-'.$d;
		
	}
	
	// в датапиковский
		if ($type == 'in'){
		// 18.10.2009 - датапиковский
		// 2009-10-14 - исо
		 $d = substr($data,8,2); // день
		 $m = substr($data,5,2); // месяц
		 $y = substr($data,0,4); // год
		 
		$result = "$d.$m.$y";
		
	}
	
	
	
	return $result;
}
function int($text){
$text = (int)$text;

	return $text;
}

/**
 * Комплексная подготовка текста к выводу:
 * удаление спецсимволов, замена кавычек и тире, "типограф", короче, куцый
 *
 * @param unknown_type $text
 * @return unknown
 */
function typo($text){
	$text = str_replace('#a#','',$text);
	$text = str_replace('#/a#','',$text);
	$text = str_replace('##','',$text);
	
	$text = stripslashes($text);
	$text = str_replace(' - ',' —&nbsp;',$text); // тирешки
	// кавычки - сначала закрывающая. Может быть с пробелом, с точкой, запятой, с тире, с бркой
        //$text = str_replace($search, $replace, $subject)
	$text = str_replace('" ','» ',$text);
	$text = str_replace(' "',' «',$text);
	$text = str_replace('".','».',$text);
	$text = str_replace('",','»,',$text);
	
//$text = eregi_replace('";','»;',$text);
//	$text = eregi_replace('"—','»—',$text);
	$text = str_replace('"<br />','»<br />',$text);
	return $text;
}

 
  	 // функция превода текста с кириллицы в траскрипт

  function translit($st)

  {

    // Сначала заменяем "односимвольные" фонемы.

    
    
$bk = array(
                    "а" =>"a",
                    "б" =>"b",
                    "в" =>"v",
                    "г" =>"g",
                    "д" =>"d",
                    "е" =>"e",
                    "ё" =>"e",
                    "ж" =>"zh",
                    "з" =>"z",
                    "и" =>"i",
                    "й" =>"y",
                    "к" =>"k",
                    "л" =>"l",
                    "м" =>"m",
                    "н" =>"n",
                    "о" =>"o",
                    "п" =>"p",
                    "р" =>"r",
                    "с" =>"s",
                    "т" =>"t",
                    "у" =>"u",
                    "ф" =>"f",
                    "х" =>"h",
                    "ц"=>"ts",
                    "ч"=>"ch",
                    "ш"=>"sh", 
                    "щ"=>"shch",
                    "ь"=>"`",
                    "ъ"=>"",
                    "ы"=>"yi",
                    "э"=>"ye",                    
                    "ю"=>"yu",
                    "я"=>"ya",

                    
                    "А" =>"A",
                    "Б" =>"B",
                    "В" =>"V",
                    "Г" =>"G",
                    "Д" =>"D",
                    "Е" =>"E",
                    "Ё" =>"E",
                    "Ж" =>"ZH",
                    "З" =>"Z",
                    "И" =>"I",
                    "Й" =>"Y",
                    "К" =>"K",
                    "Л" =>"L",
                    "М" =>"M",
                    "Н" =>"N",
                    "О" =>"O",
                    "П" =>"P",
                    "Р" =>"R",
                    "С" =>"S",
                    "Т" =>"T",
                    "У" =>"U",
                    "Ф" =>"F",
                    "Х" =>"H",
                    "Ц"=>"TS",
                    "Ч"=>"CH",
                    "Ш"=>"SH", 
                    "Щ"=>"SHCH",
                    "Ь"=>"`",
                    "Ъ"=>"",
                    "Ы"=>"YI",
                    "Э"=>"YE",                    
                    "Ю"=>"YU",
                    "Я"=>"YA"

             );


    // Возвращаем результат.
    
    foreach ($bk as $k=>$v) {
    	$st = ereg_replace($k,$v,$st);
    }

    return $st;

  }

  function translit_url($st)

  {

        $bk = array(
                    "а" =>"a",
                    "б" =>"b",
                    "в" =>"v",
                    "г" =>"g",
                    "д" =>"d",
                    "е" =>"e",
                    "ё" =>"e",
                    "ж" =>"zh",
                    "з" =>"z",
                    "и" =>"i",
                    "й" =>"y",
                    "к" =>"k",
                    "л" =>"l",
                    "м" =>"m",
                    "н" =>"n",
                    "о" =>"o",
                    "п" =>"p",
                    "р" =>"r",
                    "с" =>"s",
                    "т" =>"t",
                    "у" =>"u",
                    "ф" =>"f",
                    "х" =>"h",
                    "ц"=>"ts",
                    "ч"=>"ch",
                    "ш"=>"sh",
                    "щ"=>"shch",
                    "ь"=>"",
                    "ъ"=>"",
                    "ы"=>"yi",
                    "э"=>"ye",
                    "ю"=>"yu",
                    "я"=>"ya",

                    "А" =>"A",
                    "Б" =>"B",
                    "В" =>"V",
                    "Г" =>"G",
                    "Д" =>"D",
                    "Е" =>"E",
                    "Ё" =>"E",
                    "Ж" =>"ZH",
                    "З" =>"Z",
                    "И" =>"I",
                    "Й" =>"Y",
                    "К" =>"K",
                    "Л" =>"L",
                    "М" =>"M",
                    "Н" =>"N",
                    "О" =>"O",
                    "П" =>"P",
                    "Р" =>"R",
                    "С" =>"S",
                    "Т" =>"T",
                    "У" =>"U",
                    "Ф" =>"F",
                    "Х" =>"H",
                    "Ц"=>"TS",
                    "Ч"=>"CH",
                    "Ш"=>"SH",
                    "Щ"=>"SHCH",
                    "Ь"=>"",
                    "Ъ"=>"",
                    "Ы"=>"YI",
                    "Э"=>"YE",
                    "Ю"=>"YU",
                    "Я"=>"YA",
                    " "=>"_",
                    "\,"=>"_",
                    "\."=>"_",
                    "\/"=>"_",
                    "__"=>"_"
             );

    foreach ($bk as $k=>$v) {
    	$st = ereg_replace($k,$v,$st);
    }

    return $st;

  }
  
 /**
  * Создает ссылки на теги.
  
  * 
  *
  * @param строка $text
  */
 function tags($tags) {
 	$tage = explode(',',$tags);
 	// print_r($tags);
 	$i = 0;
 	foreach ($tage as $tag) {
 		if ($i != 0) $text .= ', ';
 		$text .= '<strong><a href="/tags/'.trim($tag).'">'.trim($tag).'</a></strong>';
 		$i++;
 	}
 	
 	
 	return 'Теги: '. $tags;
 }
 
 function stripslashes_deep($value)
{
    $value = is_array($value) ?
                array_map('stripslashes_deep', $value) :
                stripslashes($value);

    return $value;
}
 
function typo_deep($value)
{
    $value = is_array($value) ?
                array_map('typo_deep', $value) :
                typo($value);

    return $value;
}





/**
 * Подготовка для запроса данных из гета
 *
 * @param unknown_type $text
 */
function clear_path($text){
	// чистим от хтмл и пр
	$text = ereg_replace('.html','',$text);
	$text = ereg_replace('.htm','',$text);
	$text = mysql_real_escape_string($text);
	
}

function admin_message($level,$text){
	
	
 if ($_SESSION['level'] != 0) 	return $text;
	
}

function admin_menu(){
	
	
 if ($_SESSION['level'] != 0){
     ob_start();
     ?>
<div style="border: 1px solid #FF0000; padding: 5px;">
    <a href="/ADM/new">Добавить материал</a><br/>
    <a href="/ADM/edit/1/?vid=delivers">Адреса доставки</a><br/>
    <a href="/ADM/edit/?vid=menu">Управление меню</a><br/>
    <a href="/ADM/edit/?vid=cat">Управление каталогом</a><br/>
</div>
     <?
     return ob_get_clean();
 }
	
}


function tags_print($type,$table,$text_id){
	// проверим, есть ли вообще
	$z = mysql_query("select tags_link.*, tags.title from tags_link,tags where tags_link.`table`= '$table' and tags_link.text_id= '$text_id' and tags_link.tags_id = tags.id");
	
	if (mysql_numrows($z) != 0){
		if (mysql_numrows($z) == 1)	$text='<div class="tags">Тег: ';
		else $text='<div class="tags">Теги: ';
		$i = 0; // для запятой
		while ($t = mysql_fetch_assoc($z)) {
			if ($i != 0) $tags .= ', ';
			$tags .= '<a href="/tags/'.trim($t['title']).'"><b>'.$t['title'].'</b></a>';
			$i++;
		}
		$text .=$tags.'.</div>';
		
	}
	// хитрость для админа

		$adm_text = '<form id="tag_form" action="/ADM/update/'.$text_id.'/?vid=pages" method="POST" onsubmit="$.post(\'/ADM/update/'.$text_id.'/?vid=pages\', $(\'#tag_form\').serialize(),
function (data){ $(\'.tags\').html(\'Тег: \'+data+\'.\'); }); return false;">
        <b style="color: red;">Быстрый редактор тегов</b><br>
Можно указать их прямо сейчас(с большой буквы, через запятую):<br>
<textarea name="tags" id="long">'.strip_tags($tags).'</textarea><br />
<input type="submit" value="Сохранить" />
   </form>
		
		';
		// смотрим на гет, не в админке самой ли мы
		if(!isset($_GET['vid'])) $text .= admin_message(9,$adm_text);
		
	
	
	
		return $text;
}
function left_block($path){
	
	$days = array('',1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31);
	$mouths = array('','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
	$years = array(2009=>'09',2010=>10,2011=>11,2012=>12);
	$cur_year=date("Y");
        $cur_m = date("n");
        if (isset($path[2])){
           if(isset($path[3]) && is_numeric(substr($path[3],0,4)) && is_numeric(substr($path[3],5,2))){
              $cur_year=substr($path[3],0,4);  
              $cur_m=substr($path[3],5,2);  
              if (substr($cur_m,0,1)=='0'){
                   $cur_m=substr($cur_m,1,1);
              }
           }
        }
        
	echo '<div class="container">    
<div class="label">
<b>Календарь событий</b></div>	
<script type="text/javascript">calendar(\''.$cur_m.'\',\''.$cur_year.'\');</script>
	  <div class="calendar" id="calendar">
      <img src="/images/loader.gif" width="24" height="24" />
      </div>';
}
function date_admin($mysql_date){

		if (!empty($mysql_date) and ($mysql_date != '0000-00-00 00:00:00') and ($mysql_date != '0000-00-00')) {
		$day = intval(substr($mysql_date,8,2));
		$mouth = intval(substr($mysql_date,5,2));
		
		
		$year = substr($mysql_date,0,4);
		// Время
		$hour = substr($mysql_date,11,2);
		$min = substr($mysql_date,14,2);
		
	}
	else {
		$day = date("j");
		$mouth = date("n");
		$year = date("Y");
		// Время
		$hour = date("G");
		$min = date("i");
	}
	
		$mouths = array('','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
		$out .= '<input type="text" name="day" size="2" maxlength="2" value="'.$day.'" /> ';
		$out .='<select name="mouth">';
		foreach ($mouths as $k => $v){
			$out .= '<option value="'.$k.'"';
			if ($k == $mouth) $out .=' selected="selected"';
			$out .= '>'.$v.'</option>';
			
		}
		$out .= '</select> ';
				$out .='<select name="year">';
				$year_plus = $year-1;
		while ($year_plus <= (date("Y")+1)){
			$out .= '<option value="'.$year_plus.'"';
			if ($year_plus == $year) $out .= ' selected="selected"';
			$out .= '>'.$year_plus.'</option>';
			$year_plus++;
		}
		$out .= '</select><br />
		Время: <input type="text" name="hour" size="2" maxlength="2" value="'.$hour.'" />:<input type="text" name="min" size="2" maxlength="2" value="'.$min.'" />';
		
		return $out;
		
}
 
class SimpleImage {
 
   var $image;
   var $image_type;
 
   function load($filename) {
 
      $image_info = getimagesize($filename);
      $this->image_type = $image_info[2];
      if( $this->image_type == IMAGETYPE_JPEG ) {
 
         $this->image = imagecreatefromjpeg($filename);
      } elseif( $this->image_type == IMAGETYPE_GIF ) {
 
         $this->image = imagecreatefromgif($filename);
      } elseif( $this->image_type == IMAGETYPE_PNG ) {
 
         $this->image = imagecreatefrompng($filename);
      }
   }
   function save($filename, $image_type=IMAGETYPE_JPEG, $compression=75, $permissions=null) {
 
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image,$filename,$compression);
      } elseif( $image_type == IMAGETYPE_GIF ) {
 
         imagegif($this->image,$filename);
      } elseif( $image_type == IMAGETYPE_PNG ) {
 
         imagepng($this->image,$filename);
      }
      if( $permissions != null) {
 
         chmod($filename,$permissions);
      }
   }
   function output($image_type=IMAGETYPE_JPEG) {
 
      if( $image_type == IMAGETYPE_JPEG ) {
         imagejpeg($this->image);
      } elseif( $image_type == IMAGETYPE_GIF ) {
 
         imagegif($this->image);
      } elseif( $image_type == IMAGETYPE_PNG ) {
 
         imagepng($this->image);
      }
   }
   function getWidth() {
 
      return imagesx($this->image);
   }
   function getHeight() {
 
      return imagesy($this->image);
   }
   function resizeToHeight($height) {
 
      $ratio = $height / $this->getHeight();
      $width = $this->getWidth() * $ratio;
      $this->resize($width,$height);
   }
 
   function resizeToWidth($width) {
      $ratio = $width / $this->getWidth();
      $height = $this->getheight() * $ratio;
      $this->resize($width,$height);
   }
 
   function scale($scale) {
      $width = $this->getWidth() * $scale/100;
      $height = $this->getheight() * $scale/100;
      $this->resize($width,$height);
   }
 
   function resize($width,$height) {
      $new_image = imagecreatetruecolor($width, $height);
      imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());
      $this->image = $new_image;
   }      
 
}
?>